home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 17
/
CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso
/
CUCD
/
Programming
/
DiceSource
/
test
/
fptest.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-23
|
3KB
|
95 lines
#include <math.h>
main(ac, av)
char *av[];
{
double xx = (ac == 1) ? 1234.5678 : atof(av[1]);
fpconst(xx);
return(0);
}
fpconst(xx)
double xx;
{
float f1 = 1.2345678901234567890123456 + 8.7654321098765432109876544;
float f2 = 23.54;
float f3 = 23.54 + 10.23;
double d1 = 1.2345678901234567890123456789 + 8.7654321098765432109876543211;
double d2 = 23.54;
double d3 = 23.54 + 10.23;
short i;
puts("TESTING FLOATING CONSTANTS");
printf("%4.8f\t(float const) ~= 10\n", f1);
printf("%4.8f\t(float const) ~= 23.54\n", f2);
printf("%4.8f\t(float const) ~= 33.77\n", f3);
printf("%4.8lf\t(double const) ~= 10\n", d1);
printf("%4.8lf\t(double const) ~= 23.54\n", d2);
printf("%4.8lf\t(double const) ~= 33.77\n", d3);
puts("TESTING (FLOAT)");
f1 = 1.25;
f2 = 3.75;
f3 = 0.25;
printf("1.25 + 3.75 = 5.00 (%4.8f)\n", f1 + f2);
printf("1.25 - 3.75 =-2.50 (%4.8f)\n", f1 - f2);
printf("1.25 * 3.75 = 4.6875 (%4.8f)\n", f1 * f2);
printf("1.25 / 3.75 = 0.3333 (%4.8f)\n", f1 / f2);
printf("-1.25 = -1.25 (%4.8f)\n", -f1);
printf("abs(-1.25) = 1.25 (%4.8f)\n", ffabs(-f1));
printf("acos(0.25) = 1.3181 (%4.8f)\n", facos(f3));
printf("asin(0.25) = 0.2527 (%4.8f)\n", fasin(f3));
printf("atan(0.25) = 0.2450 (%4.8f)\n", fatan(f3));
printf("cos(0.25) = 0.968 (%4.8f)\n", fcos(f3));
printf("sin(1.25) = 0.949 (%4.8f)\n", fsin(f1));
printf("tan(1.25) = 3.0096 (%4.8f)\n", ftan(f1));
printf("exp(0.25) = 1.2840 (%4.8f)\n", fexp(f3));
printf("ln(3.75) = 1.3218 (%4.8f)\n", flog(f2));
printf("log10(3.75) = 0.5740 (%4.8f)\n", flog10(f2));
printf("1.25^3.75 = 2.3089 (%4.8f)\n", fpow(f1, f2));
printf("sqrt(3.75) = 1.9365 (%4.8f)\n", fsqrt(f2));
puts("TESTING (DOUBLE)");
d1 = 1.25;
d2 = 3.75;
d3 = 0.25;
printf("1.25 + 3.75 = 5.00 (%4.8f)\n", d1 + d2);
printf("1.25 - 3.75 =-2.50 (%4.8f)\n", d1 - d2);
printf("1.25 * 3.75 = 4.6875 (%4.8f)\n", d1 * d2);
printf("1.25 / 3.75 = 0.3333 (%4.8f)\n", d1 / d2);
printf("-1.25 = -1.25 (%4.8f)\n", -d1);
printf("abs(-1.25) = 1.25 (%4.8f)\n", abs(-d1));
printf("acos(0.25) = 1.3181 (%4.8f)\n", acos(d3));
printf("asin(0.25) = 0.2527 (%4.8f)\n", asin(d3));
printf("atan(0.25) = 0.2450 (%4.8f)\n", atan(d3));
printf("cos(0.25) = 0.968 (%4.8f)\n", cos(d3));
printf("sin(1.25) = 0.949 (%4.8f)\n", sin(d1));
printf("tan(1.25) = 3.0096 (%4.8f)\n", tan(d1));
printf("exp(0.25) = 1.2840 (%4.8f)\n", exp(d3));
printf("ln(3.75) = 1.3218 (%4.8f)\n", log(d2));
printf("log10(3.75) = 0.5740 (%4.8f)\n", log10(d2));
printf("1.25^3.75 = 2.3089 (%4.8f)\n", pow(d1, d2));
printf("sqrt(3.75) = 1.9365 (%4.8f)\n", sqrt(d2));
d1 = xx;
d3 = 1.0E99;
printf("CONVERSION TEST ON %4.8lf\n", d1);
for (i = 0; i < 100; ++i) {
f1 = d1;
d1 = f1;
d2 = xx - d1;
if (d2 == d3)
break;
printf("%4d %1.16le\n", i, d2);
d3 = d2;
}
}